import { INode } from "./INode";



/**
 * 控制节点接口
 */
export interface IControlNode<T> extends INode<T> {

    /**
     * 子节点数量
     */
    readonly numChildren: number;

    /**
     * 添加一个节点
     * @param child 
     */
    AddChild(child: INode<T>): void;

    /**
     * 获取指定节点
     * @param idx 
     */
    GetChild(idx: number): INode<T>;

    /**
     * 停止一个节点
     * @param idx 
     */
    HaltChild(idx: number): void;

    /**
     * 停止所有子节点
     */
    HaltChildren(): void;
}